﻿'''
题目描述
为了庆祝中国共产党成立100周年，某公园将举行多场文艺表演，很多演出都是同时进行，一个人只能同时观看一场演出，且不能迟到早
退，由于演出分布在不同的演出场地，所以连续观看的演出最少有15分钟的时间间隔，
小明是一个狂热的文艺迷，想观看尽可能多的演出， 现给出演出时间表，请帮小明计算他最多能观看几场演出。
输入描述
第一行为一个数 N，表示演出场数
1 ≤ N ≤ 1000
接下来 N 行，每行有被空格分割的整数，第一个整数 T 表示演出的开始时间，第二个整数 L 表示演出的持续时间
T 和 L 的单位为分钟
0 ≤ T ≤ 1440
0 < L ≤ 180
输出描述
输出最多能观看的演出场数。
示例1
输入
2
720 120
840 120
输出
1
说明
示例2
输入
2
0 60
90 60
输出
2
说明
解题思路
题目理解：
这道题目要求我们帮小明计算他最多可以观看的文艺演出场数，给定多个演出时间表，每个演出有开始时间和持续时间，但小明有两个
限制条件：
小明不能迟到或早退，意味着他必须完整观看演出。
连续观看的演出之间至少需要有 15 分钟的间隔，因为演出场地分布在不同地方，前往下一个演出场地需要时间。
这道题本质上是一个「区间调度问题」，需要我们在多个重叠的区间中，尽可能选择最多的不冲突区间。
示例解析：
示例1：
输入:
2
720 120
840 120
两场演出：
第一场：720 分钟开始 ，持续 120 分钟，到 840 分钟结束 。
第二场：840 分钟开始 ），持续 120 分钟，到 960 分钟结束 。
问题是：小明观看完第一场演出是 2:00 PM，但第二场演出也是2:00PM开始，所以没有足够的时间移动到下一个场地（需要至少15分钟
的间隔）。因此，小明只能观看 1 场演出。
示例2：
输入:
2
0 60
90 60
两场演出：
第一场：0 分钟开始（即 0:00 AM），持续 60 分钟，到 60 分钟结束（即 1:00 AM）。
第二场：90 分钟开始（即 1:30 AM），持续 60 分钟，到 150 分钟结束（即 2:30 AM）。
小明可以观看第一场演出结束后（1:00 AM），在 1:30 AM 前往下一个场地（刚好有 30 分钟的间隔）。因此，小明可以观看两场演出
'''
#输入描述
#第一行为一个数 N，表示演出场数
#1 ≤ N ≤ 1000
#接下来 N 行，每行有被空格分割的整数，第一个整数 T 表示演出的开始时间，第二个整数 L 表示演出的持续时间
#T 和 L 的单位为分钟
#0 ≤ T ≤ 1440
#0 < L ≤ 180
#输出描述
#输出最多能观看的演出场数
'''
示例1
输入
2
720 120
840 120
输出
1
'''
#读取输入
n = int(input())
#读取演出时间，并转换为开始、结束时间
show_time = []
for _ in range(n):
    start_time,conti_time = map(int,input().split())
    end_time = start_time + conti_time
    show_time.append([start_time,end_time])
#按结束时间排序
show_time.sort(key= lambda x: x[1])
#遍历演出时间列表，找出最多可以观看的次数
#先加入第一场次，因为不需要+间隔的15分钟
current_end_time = show_time[0][1]
count = 1
for i in range(1,len(show_time)):
    if show_time[i][0] - current_end_time >= 15:  #注意是大于15分钟，不是仅仅大于
        count += 1
        current_end_time = show_time[i][1]
#输出结果
print(count)

